package com.pro.mapper;

import com.pro.pojo.JsUserCoupon;
import com.pro.pojo.JsUserCouponUsed;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * @author cyj
 * @date 2022.3.17$ 13.56$
 * @content :
 */
public interface CouponMapper {
    /**
     * @author cyj
     * @date 2022.3.17$ 14.03$
     * @content :获取所有的优惠卷
     */
    List<JsUserCoupon> getAllCoupon(
            @Param("couponName")String couponName,
            @Param("online")String online,
            @Param("grant") String grant,
            @Param("startDate") String startDate,
            @Param("endDate") String endDate,
            @Param("limit") Integer limit,
            @Param("page") Integer page);
    /**
     * @author cyj
     * @date 2022.3.17$ 14.05$
     * @content :获取所有的优惠卷
     */
    Integer countCoupon();
    /**
     * @author cyj
     * @date 2022.3.17$ 14.42$
     * @content :获取所有的优惠卷
     */
    JsUserCoupon getCouponById(Integer couponId);
    /**
     * @author cyj
     * @date 2022.3.17$ 14.58$
     * @content :删除一个优惠卷
     */
    Boolean delCoupon(Integer id);
    /**
     * @author cyj
     * @date 2022.3.17$ 15.24$
     * @content :更改一个优惠卷上下限状态
     */
    Boolean updateOnline(
            @Param("couponId")Integer couponId,
            @Param("online")Integer online,
            @Param("updateId")Integer updateId,
            @Param("updateDate")String updateDate);
    /**
     * @author cyj
     * @date 2022.3.17$ 16.52$
     * @content :添加一个优惠卷
     */
    Boolean addCoupon(JsUserCoupon coupon);
    /**
     * @author cyj
     * @date 2022.3.18$ 8.34$
     * @content :获取所有的用户优惠卷
     */
    List<JsUserCoupon> getUserCoupons(
            @Param("account")String account,
            @Param("nickname") String nickname,
            @Param("limit") Integer limit,
            @Param("page") Integer page);
    /**
     * @author cyj
     * @date 2022.3.18$ 8.39$
     * @content :用户优惠卷计数
     */
    Integer userCouponCount(@Param("account") String account,@Param("nickname") String nickname);
    /**
     * @author cyj
     * @date 2022.3.18$ 8.52$
     * @content :添加一个优惠卷
     */
    Boolean giveCoupon(JsUserCouponUsed jsUserCouponUsed);
}
